package com.example.leetcode.c301_c400.c387;
/**
 * 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
 *
 *  
 *
 * 示例：
 *
 * s = "leetcode"
 * 返回 0
 *
 * s = "loveleetcode"
 * 返回 2
 *  
 *
 * 提示：你可以假定该字符串只包含小写字母。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/first-unique-character-in-a-string
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

/**
 * 字符串中的第一个唯一字符
 * @author zhanpengguo
 * @date 2020-12-23 8:10
 */
public class Solution {

    public int firstUniqChar(String s) {
        char[] chars = s.toCharArray();
        int[] used = new int[26];
        for (char c : chars) {
            used[c-'a']++;
        }
        for (int i = 0; i < chars.length; i++) {
            if (used[chars[i] - 'a'] == 1) {
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        int i = solution.firstUniqChar("loveleetcode");
        System.out.println(i);
    }
}
